前言
今天要來處理SQL的schema
那什麼是schema呢?
從SQLBolt上查到的定義是:
We previously described a table in a database as a two-dimensional set of rows and columns, with the columns being the properties and the rows being instances of the entity in the table. In SQL, the database schema is what describes the structure of each table, and the datatypes that each column of the table can contain.
大概的意思就是每個資料表的架構,像是含有的欄位、數量,每個欄位裡面的資料型態,還有是否有限制
今天的介紹會分成3個小部分
學習資料來源是SQLBolt這個網站,上面提供了很詳盡的解釋跟即時的題目演練
可以很方便的入門SQL的操作
Creating tables
當我們想要創建新的資料表
會使用到CREATE TABLE
的敘述句
為了避免出現重複的資料表名稱
可以使用CREATE TABLE IF NOT EXISTS
這個敘述句
使用方法
CREATE TABLE IF NOT EXISTS 資料表名稱
(
欄位名稱1 資料型態 資料限制 DEFAULT default_value,
欄位名稱2 資料型態 資料限制 DEFAULT default_value,
…
);
常見的資料型態:
** 常見的資料型態 **
type | data type | Explanation |
---|---|---|
數值資料 | INTEGER | 整數 |
數值資料 | FLOAT | 浮點數 |
數值資料 | REAL | 浮點數 |
字串資料 | CHAR(n) | 固定長度為n的字串 |
字串資料 | VARCHAR(n) | 可變長度最大為n的字串 |
字串資料 | TEXT | 可變長度的字串 |
布林值 | BLOB | True、False, Yes、No, 1、0 |
時間資料 | Date | 儲存日期 |
時間資料 | DATETIME | 儲存準確時間 |
假如我想要產生一個歌曲相關的資料表
CREATE TABLE music2021 (
id INTEGER,
Song TEXT,
Singer TEXT
);
使用查詢語法查看是否建立成功
SELECT*
FROM music2021;
就會產出一個由id, Song, Singer三個欄位組成的資料表
Inserting rows
當我們想要新增資料到資料表中
就會使用到INSERT INTO
這個敘述句
使用方法是
INSERT INTO 資料表名稱
VALUES (數值或是描述, 數值或是描述, …),
(數值2或是描述2, 數值2或是描述2, …),
…;
現在當我想在music2021這個資料表
新增目前排行榜上前六名的歌曲資訊
INSERT INTO music2021
VALUES (1, "GYALIS" , "Capella Grey"),
(2, "STAY", "The Kid LAROI and Justin Biber"),
(3, "Pepas", "Farrujo"),
(4, "Essence" , "Wizkid"),
(5, "Volvi", "Aventura & Bad Bunny"),
(6, "Run it up", "Sheff G");
用 SELECT* FROM music2021;
來檢查是否新增成功
輸入的資料成功加入到資料表內了
Updating rows
當我們想要更新或是更改已經存在在特定欄位的資料時
就會需要使用到UPDATE
& SET
這個敘述句
使用方法
UPDATE 表格名稱
SET 欄位名稱 = 欲更改資料,
欄位名稱 = 欲更改資料,
…
WHERE 條件;
在music2021的資料表中,
當我發現第四名的歌曲名稱少輸入了資料想要更改時
UPDATE music2021
SET Song = "Essence(feat. Tems)"
WHERE id = 4;
用 SELECT* FROM music2021;
來檢查是否新增成功
第四名的歌曲名稱成功被更新為Essence(feat. Tems)
小結語
今天練習了如何創建,如何新增跟如何更改資料在資料表上
這是很基本的操作
明天會繼續練習跟資料表相關的操作
Stay tuned with me?